Add GDK_DPI_SCALE env var
authorAlexander Larsson <alexl@redhat.com>
Thu, 20 Jun 2013 16:43:42 +0000 (18:43 +0200)
committerAlexander Larsson <alexl@redhat.com>
Wed, 3 Jul 2013 12:39:25 +0000 (14:39 +0200)
This is very useful for hidpi where the dpi is scaled to make
non-dpi aware apps larger. In that case a dpi aware gtk+ using
GDK_SCALE will be getting huge fonts. You can the set GDK_DPI_SCALE
to compensate for this.

gtk/gtksettings.c

index ab96154f1a34a5e4a52278dd31ad1bc58c666355..47e3d2afe40efed16a18261f6f182e61448ad30b 100644 (file)
@@ -2810,6 +2810,8 @@ settings_update_resolution (GtkSettings *settings)
   GtkSettingsPrivate *priv = settings->priv;
   gint dpi_int;
   gdouble dpi;
+  const char *scale_env;
+  double scale;
 
   g_object_get (settings,
                 "gtk-xft-dpi", &dpi_int,
@@ -2820,6 +2822,14 @@ settings_update_resolution (GtkSettings *settings)
   else
     dpi = -1.;
 
+  scale_env = g_getenv ("GDK_DPI_SCALE");
+  if (scale_env)
+    {
+      scale = g_ascii_strtod (scale_env, NULL);
+      if (scale != 0 && dpi > 0)
+       dpi *= scale;
+    }
+
   gdk_screen_set_resolution (priv->screen, dpi);
 }